package internal

import (
	"github.com/name5566/leaf/log"
	"github.com/name5566/leaf/gate"
	"reflect"
	"server/msg"
)

func init() {
	// 向当前模块（game 模块）注册 Hello 消息的消息处理函数 handleHello
	handler(&msg.Msg{}, handleHello)
}

func handler(m interface{}, h interface{}) {
	skeleton.RegisterChanRPC(reflect.TypeOf(m), h)
}

func handleHello(args []interface{}) {
	msgId := args[0].(uint16)
	// 收到的 Hello 消息
	m := args[1].(*msg.Msg)
	// 消息的发送者
	a := args[2].(gate.Agent)

	// 输出收到的消息的内容
	log.Debug("msg id is %v", msgId)
	log.Debug("%v", m.Ctx)

	// 给发送者回应一个 Hello 消息
	a.WriteMsg(&msg.Msg{
		Ctx: "Test",
	})
}